package com.guoranhao.web.util;

/**
 * @Description: 版本控制工具类
 * @author: 2018年04月28日 下午4:44 BY 杨雷（yanglei@cloud-young.com）创建
 * @Copyright: 2018 www.00bang.net Inc. All rights reserved.
 */
public class VersionUtil {

    /**
     * 两个版本比较
     *
     * @param attrVersion
     *            当前版本
     * @param lastVersion
     *            最新版本
     * @return 如果是最新版本返回1，不是最新版本返回-1,两个版本相等返回0
     */
    public static int compareVersion(String attrVersion, String lastVersion) {
        if (attrVersion.equals(lastVersion)) {
            return 0;
        }
        String[] attrVersionArray = attrVersion.split("\\.");
        String[] lastVersionArray = lastVersion.split("\\.");
        int index = 0;
        // 获取最小长度值
        int minLen = Math.min(attrVersionArray.length, lastVersionArray.length);
        int diff = 0;
        // 循环判断每位的大小
        while (index < minLen && (diff = Integer.parseInt(attrVersionArray[index])
                - Integer.parseInt(lastVersionArray[index])) == 0) {
            index++;
        }
        if (diff == 0) {
            // 如果位数不一致，比较多余位数
            for (int i = index; i < attrVersionArray.length; i++) {
                if (Integer.parseInt(attrVersionArray[i]) > 0) {
                    return 1;
                }
            }
            for (int i = index; i < lastVersionArray.length; i++) {
                if (Integer.parseInt(lastVersionArray[i]) > 0) {
                    return -1;
                }
            }
            return 0;
        } else {
            return diff > 0 ? 1 : -1;
        }
    }

}
